<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // Promise实例变为已失败状态的情况
    // 1. 手动调用reject()方法  => 会将Promise实例变为已失败状态,并将reject()方法实际参数,作为Promise实例存储的数据
    // 2. new Promise() 接收的回调函数在执行时,出现错误(代码错误,引用错误),会被new Promise()内部的try...catch捕获到(只能捕获同步代码的错误)  => 此时会将Promise实例变为已失败状态, err对象作为Promise实例存储的数据

    // var p = new Promise(function(resolve,reject){
        
    //     setTimeout(()=>{
    //         reject(1111);
    //         console.log("3秒后",p);  // {<rejected>:11111}
    //     },3000)
    // })
    // console.log("24行",p);


    var p = new Promise(function(resolve,reject){
        // 同步代码
        var a = 10;
        var b = 20;
        var c = a + B; //报错:  B is not defined
         console.log(c);
    })
    console.log("36行",p);  // {<rejected>:err}


    // p.then(null,function(err){
    //     console.log("rejected",err);
    // })

    p.catch(function(err){
        console.log("rejected",err);
    })






</script>
</html>